<?php
	class admin_group extends My_Controller
	{
		function admin_group()
		{
			parent::__construct();
			$this->check_login();
			$this->permiss_admin();
		}
		
		function index()
		{
			$data['title']			= 'Quản Lý Nhóm Admin';
			$data['admin_group']	= $this->db->get_where('admin_groups', array('tmp'=>0))->result_array();
			$data['content_admin']	= 'admins/admin_group/index';
			$this->load->view('admins/template_admin', $data);			
		}
		
		function add()
		{
			$i = $this->permiss_admin_add();				
			if(isset($i['all']) || isset($i['add']))
			{
				$data['title'] 		= "Thêm Mới Nhóm Admin";
				
				if ($this->input->post('cmd'))
				{
					$data			= array(
											'name' 			=> trim($this->input->post('name')),
											'status'   		=> $this->input->post('status')
										);
					$a 	= $this->db->get_where('admin_groups', array('name'=>$this->input->post('name')));
					if ($a->num_rows() > 0)
					{
						$_SESSION['error_add']	= 'Nhóm Admin này đã tồn tại. Vui lòng chọn Nhóm khác khác';
						redirect(base_url().'admins/admin_group/add');
					}
					else
					{
						$_SESSION['error_add']	= '';
						$this->db->insert('admin_groups', $data);
						$action	= 'Thêm mới Nhóm Admin: '.$this->input->post('name');
						$this->mod_lib->insert_log($action, $_SESSION['admin_id']);
						if ($this->input->post('cmd')	== 'Add')
						{
							echo '<script>alert("Bạn đã thêm mới thành công."); window.location = "'.base_url().'admins/admin_group"</script>';
						}
						else if ($this->input->post('cmd')	== 'Save & Add')
						{
							redirect(base_url().'admins/admin_group/add');
						}
					}
				}
				$data['content_admin']	= 'admins/admin_group/add';
				$this->load->view('admins/template_admin', $data);
			}
			else
			{
				$_SESSION['permiss_error'] = 'Bạn không có quyền thêm nhóm admin';
				redirect(base_url().'admins/admin_group');	
			}
		}
		
		function edit($id)
		{
			$i 	= $this->permiss_admin_add();
			if(isset($i['all']) || isset($i['edit']))
			{		
				$data['title'] 			= "Sửa Nhóm Admin";
				$data['group_edit']		= $this->mod_lib->detail('admin_groups', array("id"=>$id));
				$dat					= $this->mod_lib->detail('admin_groups', array("id"=>$id));
				$name					= $dat[0]['name'];			
				if ($this->input->post('cmd'))
				{	
					$data			= array(
											'name' 			=> trim($this->input->post('name')),
											'status'   		=> $this->input->post('status')
										);
					$a 	= $this->db->get_where('admin_groups', array('name'=>$this->input->post('name'), 'status'=>$this->input->post('status')));
					if ($a->num_rows() > 0)
					{
						$_SESSION['error_edit']	= 'Nhóm Admin này đã tồn tại. Vui lòng chọn Nhóm khác khác';
						redirect(base_url().'admins/admin_group/edit/'.$id);
					}
					else
					{
						$_SESSION['error_edit']	= '';
						$this->mod_lib->update('admin_groups', array('id'=>$id), $data);
						$action	= "Sửa Nhóm Admin: ".$name.' thành: '.$this->input->post('name');
						$this->mod_lib->insert_log($action, $_SESSION['admin_id']);
						redirect($_SESSION['last_url_admin']);
					}
				}
				$data['content_admin']	= 'admins/admin_group/edit';
				$this->load->view('admins/template_admin', $data);
			}
			else
			{
				$_SESSION['permiss_error'] = 'Bạn không có quyền sửa nhóm admin';
				redirect(base_url().'admins/admin_group');
			}
		}
		
		function delete()
		{
			$i = $this->permiss_admin_add();			
			if(isset($i['all']) || isset($i['del']))
			{
				$id			= $this->input->post('chon');
				$id			= substr($id, 0, strlen($id)-1);
				$del		= explode(',', $id);
				$action     	= array();
					
				$id_del		= "";
				foreach ($del as $delete)
				{
					$data 		= $this->mod_lib->detail('admin_groups',array("id"=>$delete));
					$action[] 	= $data[0]['name'];
					if ($delete != 1)
					{
						$id_del.= $delete.',';
					}
				}
				$hd = 'Xóa nhóm admin: ';
				foreach ($action as $ac)
				{
					$hd .= $ac.', ';
				}
				$id_del		= substr($id_del, 0, strlen($id_del)-1);
				$this->mod_lib->delete('admin_groups', $id_del, 'id');
				$this->mod_lib->insert_log($hd, $_SESSION['admin_id']);
				redirect($_SESSION['last_url_admin']);
			}
			else
			{
				$_SESSION['permiss_error'] = 'Bạn không có quyền xóa nhóm admin';
				redirect(base_url().'admins/admin_group');
			}
		}
		
		function del($id)
		{
			$i = $this->permiss_admin_add();			
			if(isset($i['all']) || isset($i['del']))
			{
				$this->mod_lib->delete('admin_groups', $id, 'id');
				redirect($_SESSION['last_url_admin']);
			}
			else
			{
				$_SESSION['permiss_error'] = 'Bạn không có quyền xóa nhóm admin';
				redirect(base_url().'admins/admin_group');
			}
		}
		
		function active($id, $status)
		{
			$i = $this->permiss_admin_add();
			if(isset($i['all']) || isset($i['edit']))
			{
				if ($status == 1)
				{
					$update_status = 0;
				}else{
					$update_status = 1;
				}
				$data 	= array('status' =>$update_status);			
				$this->mod_lib->update('admin_groups', array("id"=>$id), $data);
				$query	= $this->db->get_where('admin_groups', array('id'=>$id))->row_array();
				$name	= $query['name'];
				$action	= "Thay đổi trạng thái Nhóm Admin: ".$name;
				$this->mod_lib->insert_log($action, $_SESSION['admin_id']);
				redirect($_SESSION['last_url_admin']);
			}
			else
			{
				$_SESSION['permiss_error'] = 'Bạn không có quyền thay đổi trạng thái nhóm admin';
				redirect(base_url().'admins/admin_group');
			}
		}
		
		function permiss($id, $group)
		{
			//echo $id;die();
			$data['title']			= 'Phân quyền cho nhóm Admin';
			$data['admin_permiss']	= $this->db->get_where("admin_menu", array('cat_id'=>0, 'status'=>1))->result_array();
			$data['permis'] 		= $this->db->get("admin_permiss")->result_array();
			if ($this->input->post('cmd'))
			{
				foreach ($data['admin_permiss'] as $menu)
				{
					$admin_permiss_id	= $menu['id'];
					$admin_menu_1_id  	= $menu['id'];
					$Per 	= 0;
					$Post 	= 0;
					$Edit 	= 0;
					$Del 	= 0;
					$menu_id_1 = $this->input->post('menu_id_1_'.$admin_permiss_id);
					
					if($this->input->post("Per_".$admin_permiss_id) == 1)
					{
						$Per 		= $this->input->post("Per_".$admin_permiss_id); 						
					}
					
					$searchMenu1InAdminPermis = $this->db->get_where('admin_permiss', array('menu_admin_id' => $menu_id_1, 'group_admin_id' => $id));
					if($searchMenu1InAdminPermis->num_rows() > 0)
					{
						$dataWhere = array('group_admin_id' => $id, 										   
										   'menu_admin_id'  => $admin_menu_1_id
						);
						
						$dataInput = array('access' 		=> $Per, 
										   'add' 			=> $Post, 
										   'edit'  			=> $Edit, 
										   'del' 			=> $Del
						);
						$this->mod_lib->update('admin_permiss', $dataWhere, $dataInput);
					}
					else
					{
						$dataInput = array('group_admin_id' => $id, 
										   'menu_admin_id'  => $admin_menu_1_id,
										   'access' 		=> $Per, 
										   'add' 			=> $Post, 
										   'edit'  			=> $Edit, 
										   'del' 			=> $Del
						);
						$this->db->insert('admin_permiss', $dataInput);
					}					
				}				
				redirect('admins/admin_group/permiss/'.$id.'/'.$group);
			}
			$data['group_admin_id']		= $id;
			$data['group_admi_name']	= $group;
			$data['content_admin']		= 'admins/admin_group/admin_group_permiss/index';
			$this->load->view('admins/template_admin', $data);
		}		
	}